{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "框架\n",
    "\n",
    "    一、导入数据\n",
    "    二、原始序列的检验\n",
    "    三、一阶差分序列的检验\n",
    "    四、定阶（参数调优)\n",
    "    五、建模与预测\n",
    "    \n",
    "    参考材料：《Python数据分析与挖掘实践》"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 工具准备"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "\n",
    "from IPython.core.interactiveshell import InteractiveShell\n",
    "InteractiveShell.ast_node_interactivity = \"all\"\n",
    "\n",
    "from matplotlib.pylab import style #自定义图表风格\n",
    "style.use('ggplot')\n",
    "\n",
    "# 解决中文乱码问题\n",
    "plt.rcParams['font.sans-serif'] = ['Simhei']\n",
    "# 解决坐标轴刻度负号乱码\n",
    "plt.rcParams['axes.unicode_minus'] = False\n",
    "\n",
    "#pip install statsmodels\n",
    "from statsmodels.graphics.tsaplots import plot_acf,plot_pacf  #自相关图、偏自相关图\n",
    "from statsmodels.tsa.stattools import adfuller as ADF #平稳性检验\n",
    "from statsmodels.stats.diagnostic import acorr_ljungbox #白噪声检验\n",
    "import statsmodels.api as sm #D-W检验,一阶自相关检验\n",
    "from statsmodels.graphics.api import qqplot #画QQ图,检验一组数据是否服从正态分布\n",
    "from statsmodels.tsa.arima.model import ARIMA"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 一、导入数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "yearAndMonth = [\n",
    "    \"2020/10\",\n",
    "    \"2020/11\",\n",
    "    \"2020/12\",\n",
    "    \"2021/1\",\n",
    "    \"2021/2\",\n",
    "    \"2021/3\",\n",
    "    \"2021/4\",\n",
    "    \"2021/5\",\n",
    "    \"2021/6\",\n",
    "    \"2021/7\",\n",
    "    \"2021/8\",\n",
    "    \"2021/9\"\n",
    "]\n",
    "\n",
    "salesData = [\n",
    "    \"60\",\n",
    "    \"57\",\n",
    "    \"40\",\n",
    "    \"89\",\n",
    "    \"47\",\n",
    "    \"58\",\n",
    "    \"77\",\n",
    "    \"30\",\n",
    "    \"36\",\n",
    "    \"61\",\n",
    "    \"38\",\n",
    "    \"5\"\n",
    "]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "Index: 12 entries, 2020/10 to 2021/9\n",
      "Data columns (total 1 columns):\n",
      " #   Column  Non-Null Count  Dtype  \n",
      "---  ------  --------------  -----  \n",
      " 0   sale    12 non-null     float64\n",
      "dtypes: float64(1)\n",
      "memory usage: 192.0+ bytes\n"
     ]
    }
   ],
   "source": [
    "# 转换数据类型\n",
    "index = pd.DatetimeIndex(yearAndMonth)\n",
    "data = {\"date\":yearAndMonth,\"sale\":salesData}\n",
    "\n",
    "sale = pd.DataFrame(data)\n",
    "# 转换数据类型\n",
    "sale.set_index(['date'],inplace=True)\n",
    "sale.sale=sale.sale.astype('float')\n",
    "\n",
    "sale.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>sale</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>date</th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2020/10</th>\n",
       "      <td>60.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020/11</th>\n",
       "      <td>57.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020/12</th>\n",
       "      <td>40.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2021/1</th>\n",
       "      <td>89.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2021/2</th>\n",
       "      <td>47.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2021/3</th>\n",
       "      <td>58.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2021/4</th>\n",
       "      <td>77.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2021/5</th>\n",
       "      <td>30.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2021/6</th>\n",
       "      <td>36.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2021/7</th>\n",
       "      <td>61.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2021/8</th>\n",
       "      <td>38.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2021/9</th>\n",
       "      <td>5.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         sale\n",
       "date         \n",
       "2020/10  60.0\n",
       "2020/11  57.0\n",
       "2020/12  40.0\n",
       "2021/1   89.0\n",
       "2021/2   47.0\n",
       "2021/3   58.0\n",
       "2021/4   77.0\n",
       "2021/5   30.0\n",
       "2021/6   36.0\n",
       "2021/7   61.0\n",
       "2021/8   38.0\n",
       "2021/9    5.0"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sale"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 二、原始序列的检验"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- 时序图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:xlabel='date'>"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sale.plot()\n",
    "plt.show()\n",
    "\n",
    "# 判断图像是否平稳"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Figure size 720x360 with 0 Axes>"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:xlabel='date'>"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/plain": [
       "<Figure size 720x360 with 0 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "d1_sale=sale.diff(periods=1, axis=0).dropna()\n",
    "\n",
    "#时序图\n",
    "plt.figure(figsize=(10,5))\n",
    "d1_sale.plot()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Figure size 720x360 with 0 Axes>"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:xlabel='date'>"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/plain": [
       "<Figure size 720x360 with 0 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "d3_sale=d2_sale.diff(periods=1, axis=0).dropna()\n",
    "\n",
    "#时序图\n",
    "plt.figure(figsize=(10,5))\n",
    "d3_sale.plot()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- 自相关图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "d:\\miniconda\\lib\\site-packages\\ipykernel_launcher.py:1: UserWarning: Matplotlib is currently using module://ipykernel.pylab.backend_inline, which is a non-GUI backend, so cannot show the figure.\n",
      "  \"\"\"Entry point for launching an IPython kernel.\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX0AAAEGCAYAAACJnEVTAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Il7ecAAAACXBIWXMAAAsTAAALEwEAmpwYAAAo/ElEQVR4nO3dfXBUVZ7/8fftpEMSQjoJSZAQEwiQBQYyoqADOKPDdEVr1l+5tbC1ymDtCmrVLGzNsMpozcMSp6KTXR9LVGY1BUNN7Q5arGPNzq7gZh0VlQJGiNFgA0ISJQlCzBNJ6CSde35/tGkIeSDpdOhO+vOqSsF9ODffPoRP35y+91zLGGMQEZGo4Ah3ASIicvUo9EVEoohCX0Qkiij0RUSiiEJfRCSKKPRFRKKIQl+uGo/Hg2VZvPfee+EuJSzefvttZs6cGfLjzpw5k7fffjvkx5WJSaEvV82ePXv6/Dkcv/nNb7j11lvHqKLx4e///u8pKioadHtFRQU333zz1StIxjWFvlw1e/bsYeXKlSMKfbmy5ORkYmNjw12GjBdG5Cro6Ogw8fHx5n//93+NZVnm7NmzxhhjAFNVVRXY7+/+7u/Mli1bzBtvvGGAfl/nz583xhhj27b5l3/5F5OTk2OuueYa85Of/MR0dXUFjvPaa6+Z+fPnm6SkJHP77bebmpqawLaDBw+am266yUyZMsW43W7z2WefBbbt2LHD3HLLLebw4cPmO9/5jrn11lsD26qqqgxgGhoazJo1a4zL5TJerzew/YUXXjCzZ882aWlpZuPGjX3qMcaYP/3pTyY3N7df3xw4cMAsWbLEJCQkmEWLFpn333/fGGPMww8/3O/133DDDf3a5+bmmj/96U991nV2dpqHHnrITJs2zeTk5Jgnn3zS2LYd6OOf//zn5kc/+pFJSkoyeXl55oMPPhjw300mHp3py1XxzjvvkJCQwPe+9z1mzZrF3r17h9zf7XbT1NTECy+8wIoVK2hqaqKpqYmkpCQAXnzxRbZu3cq///u/88Ybb/Bf//VfbNmyBYBDhw5x991384tf/IKjR4+SnJzMfffdB0B9fT1ut5u/+Zu/4eOPP2bevHkUFhbi9XoD3/vLL7/krrvuYu3atTz11FP9avurv/orZs+eze9//3ucTicAr776Kg899BAvvvgi77zzDv/93//N008/fcV+Mcbw13/913z3u9/l1KlT3H///dx///0AFBUV0dTUxN13383DDz9MU1PTsMfuf/azn7F371727t3Lb3/7W5566ilefvnlwPaXXnoJgI8//pgbb7yRRx55ZFjHlQkg3O86Eh1+9KMfme9///vGGGPuuece84Mf/MAYM/iZfq/eM+/LzZs3z2zbti2w/Ic//MEkJycbY4x54IEHzJo1awLbvvjiC/P73//eGGNMSUmJuemmmwLburu7zbRp08x//ud/Br4fYN55551+37P3TP/RRx/tt62wsND88Ic/DCw//vjjfb6PMQOf6du2berr643X6zXl5eXmZz/7mXE4HH32ubxPLnf5mb5t2yYxMdG88cYbgXXPPfecWbRoUeB43/zmNwNn/nv37jUzZ84c9PgysWggUK6KPXv2UFVVRUpKCl6vl+TkZMwAc/11dHQM63g1NTXMmTMnsDx37lxaW1tpamriiy++4IYbbghsy87OJjs7e8B2sbGxzJw5k5qamsC6G264ge985zuDfu9/+qd/6rfuiy++YN++ffzHf/wHAN3d3SQnJ1/xdViWxYsvvsivf/1rZsyYwaJFi7Bt+4rthnLu3Dk6Ojr69c+lr3HlypVYlgVAXFzcgP8WMjFpeEfGXHV1NceOHeMPf/gD5eXlvPvuu5w7d44PP/wQgJ6eHgBs2+bw4cN92jocjgEDaebMmZw8eTKw/Nlnn5GcnExqaio5OTlUVVUFtp08eZJFixbR3t7er53P56O6uprc3NzAut4hpMEMtP3aa6/l4Ycfpry8nPLycj766CPefPPNIY8D8O677/L0009z+PBhjhw5MuAwy2B9MJiMjAwSExP79c+lr3E4b0gyMSn0Zczt2bOHjIwMCgsLmTlzJjfeeCP5+fns2bOH7Oxs3n//fQCefPJJTp8+3aftnDlz+Pjjj/nss884fvw4H330EQAbNmyguLiY999/n/Lycn7yk5+wYcMGANavX8/u3bt55ZVX+OKLL3j00UdJTk5m8uTJ3HPPPRw9epSnnnqKmpoaNm3axOTJk/n+978/qtd433338corr3Du3DmcTiePPfZY4HOEobS2tgLQ0tLChx9+yPr16wH6hPycOXN49913qa+v589//jO1tbVDHtOyLP7hH/6BzZs389FHH7Fv3z4ef/xxNm7cOIpXKBNGWAeXJCrceeed5u677+6z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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_acf(d3_sale,lags=8).show()\n",
    "\n",
    "#解读：自相关系数长期大于零，没有趋向于零，说明序列间具有很强的长期相关性。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "d:\\miniconda\\lib\\site-packages\\ipykernel_launcher.py:1: UserWarning: Matplotlib is currently using module://ipykernel.pylab.backend_inline, which is a non-GUI backend, so cannot show the figure.\n",
      "  \"\"\"Entry point for launching an IPython kernel.\n"
     ]
    },
    {
     "data": {
      "image/png": "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J3wBOjs78Xg8QY0JFX+ypKenM27cOAAmTpyI2+0OacZAff6cvKP4JaK77rrL9z+BkV7bjo4Otm3bxooVKwY8Ppoet3D7vKPpcWsymVi2bBk2m42ampp+x0fb2t4u71CvbViX/mc/4dvU1ERycnJQY0LFnyybNm2isbERj8fD4cOHSU9PD3XMgITTp6zXrVtHW1sbXV1dHDlyZMReIO/p6WHDhg0sWrTopus1mh63/uQdLY/bXbt28T//8z/A9RegB/rf32haW3/yDvXahnXp5+XlsX//fiorKzl48CCTJk1ix44dtxwza9asEUrrX96ioiLKy8tZs2YNNpvNdy11NDh69ChVVVV99t1333289tprbN++PSSfsvbXQFmLiop49tln+d73vseDDz5IamrqiGTbt28fZ86cYefOnTgcDn75y1+O6setP3lHy+PWbrfz29/+luLiYjweD+PHjx/Va+tP3qFe27B/y+aN97hOnz6d+Pj4oMeEymjKMlT0Kevh8ef4WBktjLy2YV/6IiLiv7C+vCMiIoFR6YuIGIhKX0TEQFT6IiIGotIXETGQ/wehNOOcg5G3swAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_pacf(d3_sale,lags=3).show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- 平稳性检验"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "原始序列的ADF检验结果为： (-7.455363470675583, 5.530655822171907e-11, 1, 7, {'1%': -4.9386902332361515, '5%': -3.477582857142857, '10%': -2.8438679591836733}, 61.10107567516756)\n"
     ]
    }
   ],
   "source": [
    "#方法：单位根检验\n",
    "\n",
    "print('原始序列的ADF检验结果为：',ADF(d3_sale.sale))\n",
    "\n",
    "# 解读：P值大于显著性水平α（0.05），接受原假设（非平稳序列），说明原始序列是非平稳序列。\n",
    "# 也可以判断t值（第一个值），如果小于第五个值，小于1%的值=严格拒绝原假设，小于百分五的值=拒绝原假设，依次递减"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "第一个是adf检验的结果。\n",
    "第二个是统计量的P值。\n",
    "第三个是计算过程中用到的延迟阶数。\n",
    "第四个是用于ADF回归和计算的观测值的个数。\n",
    "第五个是配合第一个一起看的，是在99%，95%，90%置信区间下的临界的ADF检验的值。\n",
    "\n",
    "原文链接：https://blog.csdn.net/qq_36707798/article/details/88640684"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 三、一阶差分序列的检验"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Figure size 720x360 with 0 Axes>"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:xlabel='date'>"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/plain": [
       "<Figure size 720x360 with 0 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "原始序列的ADF检验结果为： (-5.203980782529557, 8.629038519368227e-06, 1, 9, {'1%': -4.473135048010974, '5%': -3.28988060356653, '10%': -2.7723823456790124}, 63.545511480767374)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "d:\\miniconda\\lib\\site-packages\\ipykernel_launcher.py:10: UserWarning: Matplotlib is currently using module://ipykernel.pylab.backend_inline, which is a non-GUI backend, so cannot show the figure.\n",
      "  # Remove the CWD from sys.path while we load stuff.\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "d1_sale=sale.diff(periods=1, axis=0).dropna()\n",
    "\n",
    "#时序图\n",
    "plt.figure(figsize=(10,5))\n",
    "d1_sale.plot()\n",
    "plt.show()\n",
    "#解读：在均值附件比较平稳波动\n",
    "\n",
    "#自相关图\n",
    "plot_acf(d1_sale,lags=10).show()\n",
    "#解读：有短期相关性，但趋向于零。\n",
    "\n",
    "#平稳性检验\n",
    "print('原始序列的ADF检验结果为：',ADF(d1_sale.sale))\n",
    "\n",
    "#解读：P值小于显著性水平α（0.05），拒绝原假设（非平稳序列），说明一阶差分序列是平稳序列。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- 白噪声检验"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "一阶差分序列的白噪声检验结果为：     lb_stat  lb_pvalue\n",
      "1  5.038483    0.02479\n"
     ]
    }
   ],
   "source": [
    "print('一阶差分序列的白噪声检验结果为：',acorr_ljungbox(d3_sale,lags=1))#返回统计量、P值\n",
    "\n",
    "#解读：p值小于0.05，拒绝原假设（纯随机序列），说明一阶差分序列是非白噪声。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 四、定阶"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- 参数调优：人工识图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "d:\\miniconda\\lib\\site-packages\\ipykernel_launcher.py:4: UserWarning: Matplotlib is currently using module://ipykernel.pylab.backend_inline, which is a non-GUI backend, so cannot show the figure.\n",
      "  after removing the cwd from sys.path.\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\graphics\\tsaplots.py:353: FutureWarning: The default method 'yw' can produce PACF values outside of the [-1,1] interval. After 0.13, the default will change tounadjusted Yule-Walker ('ywm'). You can use this method now by setting method='ywm'.\n",
      "  FutureWarning,\n",
      "d:\\miniconda\\lib\\site-packages\\ipykernel_launcher.py:9: UserWarning: Matplotlib is currently using module://ipykernel.pylab.backend_inline, which is a non-GUI backend, so cannot show the figure.\n",
      "  if __name__ == '__main__':\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\graphics\\tsaplots.py:353: FutureWarning: The default method 'yw' can produce PACF values outside of the [-1,1] interval. After 0.13, the default will change tounadjusted Yule-Walker ('ywm'). You can use this method now by setting method='ywm'.\n",
      "  FutureWarning,\n",
      "d:\\miniconda\\lib\\site-packages\\ipykernel_launcher.py:13: UserWarning: Matplotlib is currently using module://ipykernel.pylab.backend_inline, which is a non-GUI backend, so cannot show the figure.\n",
      "  del sys.path[0]\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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bcLCwgL+IX755Zf55JNPaG5u5n//93955JFHApp/K/v372fVqlXU1dVRX1/P17/+dd8vAovF4hdwf/rTnwbMt1gsA84lPT3dbw2/t7eXxsZG0tLSSE1N5dNPP/X7BfLoo4/ym9/8xvd6wc1zP/74Y9LS0vzuPyoq6pbnM9ht06dP5/7776eurs7330cffcTChQtveT/XPfbYY6xatYpPPvmEt956i4SEBL/bg3ksv9yfS5cu0dbW5jvPmJiYgO5PRodCX3w6Ozvxer18/vnnnDhxgkcffRRgyD/8GRkZtLS0UFNTw7lz56iqqrrjnI6ODrxeL5999hnvvPMOzz///LCf/X3++eccOnSIb3/726Snp5Oens63vvUtX+hPmzaNw4cP4/V6OXHiBK+99tqA+5g1axb79u2jpaWFgwcPAvC9732P48eP87Of/YympibWrVvH5MmT+eu//mvy8vLIyspizZo1viD93e9+x7x580hKSqK4uJg1a9Zw6tQp3n77bX7xi1+wdu3aYZ3nww8/zMWLFzl48CARERHU1dWxYMECLly4cMe5HR0ddHd3c/78eZ555hmqq6v9+h7MY/mP//iP7N27l1//+tecO3eOVatWsXDhQr9n9xJ6Cn3xyc7OZv369SxZsoRvfetbOBwOYmJiqKmpGdL8adOmsWnTJh566CGysrL4wx/+cMc5Tz75JDabDbvdzosvvsgTTzzBiRMnuHbtWtDn8d577wH973q5rqioiDNnzvDxxx9TUlLC1atXsdvtPPHEE753rtzstdde49///d9JS0vjpZdeAiA5OZk//vGPvPnmm8yZMwe32827775LREQEVquV3//+93z22WdkZ2fz7LPP8pvf/Mb3Augbb7xBeno6+fn5PPXUU7z66qt+6/nBiI6OZv/+/VRUVDBr1iw2bNjAr371K77yla/cce7WrVvZsmULubm5fPbZZ3zzm9/0e5yDeSznzp3Lnj17+Ld/+zfmzZuH1+tl9+7dQV9YJ6PDoi9RERExDz3TFxExEYW+iIiJBB36ly5d4sc//vEtb+/t7aWsrIxnnnnG90LYYPtEROTuCSr0Ozs7+fnPf053d/ctx+zfv5+MjAxKS0upqanh2rVrg+4TEZG7J6jQDwsLY926dURGRt5yTENDAwUFBUD/ZfpnzpwZdN+XuVwuNmzYwIYNG4IpTURE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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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bcLCwgL+IX755Zf55JNPaG5u5n//93955JFHApp/K/v372fVqlXU1dVRX1/P17/+dd8vAovF4hdwf/rTnwbMt1gsA84lPT3dbw2/t7eXxsZG0tLSSE1N5dNPP/X7BfLoo4/ym9/8xvd6wc1zP/74Y9LS0vzuPyoq6pbnM9ht06dP5/7776eurs7330cffcTChQtveT/XPfbYY6xatYpPPvmEt956i4SEBL/bg3ksv9yfS5cu0dbW5jvPmJiYgO5PRodCX3w6Ozvxer18/vnnnDhxgkcffRRgyD/8GRkZtLS0UFNTw7lz56iqqrrjnI6ODrxeL5999hnvvPMOzz///LCf/X3++eccOnSIb3/726Snp5Oens63vvUtX+hPmzaNw4cP4/V6OXHiBK+99tqA+5g1axb79u2jpaWFgwcPAvC9732P48eP87Of/YympibWrVvH5MmT+eu//mvy8vLIyspizZo1viD93e9+x7x580hKSqK4uJg1a9Zw6tQp3n77bX7xi1+wdu3aYZ3nww8/zMWLFzl48CARERHU1dWxYMECLly4cMe5HR0ddHd3c/78eZ555hmqq6v9+h7MY/mP//iP7N27l1//+tecO3eOVatWsXDhQr9n9xJ6Cn3xyc7OZv369SxZsoRvfetbOBwOYmJiqKmpGdL8adOmsWnTJh566CGysrL4wx/+cMc5Tz75JDabDbvdzosvvsgTTzzBiRMnuHbtWtDn8d577wH973q5rqioiDNnzvDxxx9TUlLC1atXsdvtPPHEE753rtzstdde49///d9JS0vjpZdeAiA5OZk//vGPvPnmm8yZMwe32827775LREQEVquV3//+93z22WdkZ2fz7LPP8pvf/Mb3Augbb7xBeno6+fn5PPXUU7z66qt+6/nBiI6OZv/+/VRUVDBr1iw2bNjAr371K77yla/cce7WrVvZsmULubm5fPbZZ3zzm9/0e5yDeSznzp3Lnj17+Ld/+zfmzZuH1+tl9+7dQV9YJ6PDoi9RERExDz3TFxExEYW+iIiJBB36ly5d4sc//vEtb+/t7aWsrIxnnnnG90LYYPtEROTuCSr0Ozs7+fnPf053d/ctx+zfv5+MjAxKS0upqanh2rVrg+4TEZG7J6jQDwsLY926dURGRt5yTENDAwUFBUD/ZfpnzpwZdN+XuVwuNmzYwIYNG4IpTURE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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "d1_sale=sale.diff(periods=1, axis=0).dropna()\n",
    "\n",
    "#自相关图\n",
    "plot_acf(d1_sale,lags=4).show()\n",
    "\n",
    "#解读：有短期相关性，但趋向于零。\n",
    "\n",
    "#偏自相关图\n",
    "plot_pacf(d1_sale,lags=4).show()\n",
    "\n",
    "\n",
    "#偏自相关图\n",
    "plot_pacf(d1_sale,lags=4).show()\n",
    "\n",
    "#解读：自相关图，1阶截尾；偏自相关图，拖尾。则ARIMA(p,d,q)=ARIMA(0,1,1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- 参数调优：BIC"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "    模型调优的方法：AIC和BIC\n",
    "    值越小越好\n",
    "    参数调优的方法非常多，用不同方法得出的结论可能不同"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1"
      ]
     },
     "execution_count": 52,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/plain": [
       "1"
      ]
     },
     "execution_count": 52,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pmax=int(len(d3_sale)/7) #一般阶数不超过length/10\n",
    "qmax=int(len(d3_sale)/7) #一般阶数不超过length/10"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {},
   "outputs": [],
   "source": [
    "bic_matrix=[]\n",
    "for p in range(pmax+1):\n",
    "    tmp=[]\n",
    "    for q in range(qmax+1):\n",
    "        try:\n",
    "            tmp.append(ARIMA(sale,(p,1,q)).fit().bic)\n",
    "        except:\n",
    "            tmp.append(None)\n",
    "    bic_matrix.append(tmp)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>None</td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>None</td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      0     1\n",
       "0  None  None\n",
       "1  None  None"
      ]
     },
     "execution_count": 54,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "bic_matrix=pd.DataFrame(bic_matrix)\n",
    "bic_matrix"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\statespace\\sarimax.py:978: UserWarning: Non-invertible starting MA parameters found. Using zeros as starting parameters.\n",
      "  warn('Non-invertible starting MA parameters found.'\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\statespace\\sarimax.py:978: UserWarning: Non-invertible starting MA parameters found. Using zeros as starting parameters.\n",
      "  warn('Non-invertible starting MA parameters found.'\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\statespace\\sarimax.py:868: UserWarning: Too few observations to estimate starting parameters for ARMA and trend. All parameters except for variances will be set to zeros.\n",
      "  ' zeros.' % warning_description)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\base\\model.py:606: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
      "  ConvergenceWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\statespace\\sarimax.py:978: UserWarning: Non-invertible starting MA parameters found. Using zeros as starting parameters.\n",
      "  warn('Non-invertible starting MA parameters found.'\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\statespace\\sarimax.py:978: UserWarning: Non-invertible starting MA parameters found. Using zeros as starting parameters.\n",
      "  warn('Non-invertible starting MA parameters found.'\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\base\\model.py:606: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
      "  ConvergenceWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\statespace\\sarimax.py:868: UserWarning: Too few observations to estimate starting parameters for ARMA and trend. All parameters except for variances will be set to zeros.\n",
      "  ' zeros.' % warning_description)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\base\\model.py:606: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
      "  ConvergenceWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\statespace\\sarimax.py:978: UserWarning: Non-invertible starting MA parameters found. Using zeros as starting parameters.\n",
      "  warn('Non-invertible starting MA parameters found.'\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\base\\model.py:606: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
      "  ConvergenceWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\statespace\\sarimax.py:868: UserWarning: Too few observations to estimate starting parameters for ARMA and trend. All parameters except for variances will be set to zeros.\n",
      "  ' zeros.' % warning_description)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\base\\model.py:606: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
      "  ConvergenceWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\statespace\\sarimax.py:978: UserWarning: Non-invertible starting MA parameters found. Using zeros as starting parameters.\n",
      "  warn('Non-invertible starting MA parameters found.'\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\base\\model.py:606: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
      "  ConvergenceWarning)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\statespace\\sarimax.py:868: UserWarning: Too few observations to estimate starting parameters for ARMA and trend. All parameters except for variances will be set to zeros.\n",
      "  ' zeros.' % warning_description)\n",
      "d:\\miniconda\\lib\\site-packages\\statsmodels\\base\\model.py:606: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals\n",
      "  ConvergenceWarning)\n"
     ]
    }
   ],
   "source": [
    "(p, q) =(sm.tsa.arma_order_select_ic(d3_sale,max_ar=3,max_ma=3,ic='aic')['aic_min_order'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(2, 3)"
      ]
     },
     "execution_count": 58,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "p,q"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Series([], dtype: object)"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "bic_matrix.stack()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "ename": "TypeError",
     "evalue": "reduction operation 'argmin' not allowed for this dtype",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mTypeError\u001b[0m                                 Traceback (most recent call last)",
      "\u001b[1;32m<ipython-input-36-3e3136d8fe5f>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mp\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mq\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mbic_matrix\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mstack\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0midxmin\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;31m#最小值的索引\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m      2\u001b[0m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'用BIC方法得到最优的p值是%d,q值是%d'\u001b[0m\u001b[1;33m%\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mp\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mq\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32md:\\miniconda\\lib\\site-packages\\pandas\\core\\series.py\u001b[0m in \u001b[0;36midxmin\u001b[1;34m(self, axis, skipna, *args, **kwargs)\u001b[0m\n\u001b[0;32m   2072\u001b[0m         \"\"\"\n\u001b[0;32m   2073\u001b[0m         \u001b[0mskipna\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mnv\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mvalidate_argmin_with_skipna\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mskipna\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0margs\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 2074\u001b[1;33m         \u001b[0mi\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mnanops\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mnanargmin\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_values\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mskipna\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mskipna\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m   2075\u001b[0m         \u001b[1;32mif\u001b[0m \u001b[0mi\u001b[0m \u001b[1;33m==\u001b[0m \u001b[1;33m-\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m   2076\u001b[0m             \u001b[1;32mreturn\u001b[0m \u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mnan\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32md:\\miniconda\\lib\\site-packages\\pandas\\core\\nanops.py\u001b[0m in \u001b[0;36m_f\u001b[1;34m(*args, **kwargs)\u001b[0m\n\u001b[0;32m     65\u001b[0m                 \u001b[0mf_name\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mf\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m__name__\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mreplace\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"nan\"\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m\"\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m     66\u001b[0m                 raise TypeError(\n\u001b[1;32m---> 67\u001b[1;33m                     \u001b[1;34mf\"reduction operation '{f_name}' not allowed for this dtype\"\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m     68\u001b[0m                 )\n\u001b[0;32m     69\u001b[0m             \u001b[1;32mtry\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;31mTypeError\u001b[0m: reduction operation 'argmin' not allowed for this dtype"
     ]
    }
   ],
   "source": [
    "p,q=bic_matrix.stack().idxmin() #最小值的索引\n",
    "print('用BIC方法得到最优的p值是%d,q值是%d'%(p,q))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- 参数调优：AIC"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "ename": "TypeError",
     "evalue": "reduction operation 'argmin' not allowed for this dtype",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mTypeError\u001b[0m                                 Traceback (most recent call last)",
      "\u001b[1;32m<ipython-input-37-0159de033302>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[0;32m     12\u001b[0m     \u001b[0maic_matrix\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mtmp\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m     13\u001b[0m \u001b[0maic_matrix\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mpd\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mDataFrame\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0maic_matrix\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 14\u001b[1;33m \u001b[0mp\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mq\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0maic_matrix\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mstack\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0midxmin\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;31m#最小值的索引\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[1;32md:\\miniconda\\lib\\site-packages\\pandas\\core\\series.py\u001b[0m in \u001b[0;36midxmin\u001b[1;34m(self, axis, skipna, *args, **kwargs)\u001b[0m\n\u001b[0;32m   2072\u001b[0m         \"\"\"\n\u001b[0;32m   2073\u001b[0m         \u001b[0mskipna\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mnv\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mvalidate_argmin_with_skipna\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mskipna\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0margs\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 2074\u001b[1;33m         \u001b[0mi\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mnanops\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mnanargmin\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_values\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mskipna\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mskipna\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m   2075\u001b[0m         \u001b[1;32mif\u001b[0m \u001b[0mi\u001b[0m \u001b[1;33m==\u001b[0m \u001b[1;33m-\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m   2076\u001b[0m             \u001b[1;32mreturn\u001b[0m \u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mnan\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32md:\\miniconda\\lib\\site-packages\\pandas\\core\\nanops.py\u001b[0m in \u001b[0;36m_f\u001b[1;34m(*args, **kwargs)\u001b[0m\n\u001b[0;32m     65\u001b[0m                 \u001b[0mf_name\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mf\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m__name__\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mreplace\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"nan\"\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m\"\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m     66\u001b[0m                 raise TypeError(\n\u001b[1;32m---> 67\u001b[1;33m                     \u001b[1;34mf\"reduction operation '{f_name}' not allowed for this dtype\"\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m     68\u001b[0m                 )\n\u001b[0;32m     69\u001b[0m             \u001b[1;32mtry\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;31mTypeError\u001b[0m: reduction operation 'argmin' not allowed for this dtype"
     ]
    }
   ],
   "source": [
    "pmax=int(len(d1_sale)/10) #一般阶数不超过length/10\n",
    "qmax=int(len(d1_sale)/10) #一般阶数不超过length/10\n",
    "\n",
    "aic_matrix=[]\n",
    "for p in range(pmax+1):\n",
    "    tmp=[]\n",
    "    for q in range(qmax+1):\n",
    "        try:\n",
    "            tmp.append(ARIMA(sale,(p,1,q)).fit().aic)\n",
    "        except:\n",
    "            tmp.append(None)\n",
    "    aic_matrix.append(tmp)\n",
    "aic_matrix=pd.DataFrame(aic_matrix)\n",
    "p,q=aic_matrix.stack().idxmin() #最小值的索引"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "用AIC方法得到最优的p值是1,q值是1\n"
     ]
    }
   ],
   "source": [
    "print('用AIC方法得到最优的p值是%d,q值是%d'%(p,q))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 五、建模及预测"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### （1）建模"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "metadata": {},
   "outputs": [
    {
     "ename": "ValueError",
     "evalue": "endog and exog matrices are different sizes",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mValueError\u001b[0m                                Traceback (most recent call last)",
      "\u001b[1;32m<ipython-input-68-6e48c9af682c>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[0;32m      1\u001b[0m \u001b[1;31m#创建模型\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 2\u001b[1;33m \u001b[0mmodel\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mARIMA\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0msale\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m2\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;36m3\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;36m3\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfit\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[1;32md:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\arima\\model.py\u001b[0m in \u001b[0;36m__init__\u001b[1;34m(self, endog, exog, order, seasonal_order, trend, enforce_stationarity, enforce_invertibility, concentrate_scale, trend_offset, dates, freq, missing, validate_specification)\u001b[0m\n\u001b[0;32m    156\u001b[0m             \u001b[0mconcentrate_scale\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mconcentrate_scale\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mtrend_offset\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mtrend_offset\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    157\u001b[0m             \u001b[0mdates\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mdates\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mfreq\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mfreq\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mmissing\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mmissing\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 158\u001b[1;33m             validate_specification=validate_specification)\n\u001b[0m\u001b[0;32m    159\u001b[0m         \u001b[0mexog\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_spec_arima\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_model\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdata\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0morig_exog\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    160\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32md:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\arima\\specification.py\u001b[0m in \u001b[0;36m__init__\u001b[1;34m(self, endog, exog, order, seasonal_order, ar_order, diff, ma_order, seasonal_ar_order, seasonal_diff, seasonal_ma_order, seasonal_periods, trend, enforce_stationarity, enforce_invertibility, concentrate_scale, trend_offset, dates, freq, missing, validate_specification)\u001b[0m\n\u001b[0;32m    445\u001b[0m         \u001b[1;31m# providing us with a time series index\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    446\u001b[0m         self._model = TimeSeriesModel(endog, exog=exog, dates=dates, freq=freq,\n\u001b[1;32m--> 447\u001b[1;33m                                       missing=missing)\n\u001b[0m\u001b[0;32m    448\u001b[0m         \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mendog\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;32mNone\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mfaux_endog\u001b[0m \u001b[1;32melse\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_model\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mendog\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    449\u001b[0m         \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mexog\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_model\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mexog\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32md:\\miniconda\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py\u001b[0m in \u001b[0;36m__init__\u001b[1;34m(self, endog, exog, dates, freq, missing, **kwargs)\u001b[0m\n\u001b[0;32m    423\u001b[0m     def __init__(self, endog, exog=None, dates=None, freq=None,\n\u001b[0;32m    424\u001b[0m                  missing='none', **kwargs):\n\u001b[1;32m--> 425\u001b[1;33m         \u001b[0msuper\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m__init__\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mendog\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mexog\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mmissing\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mmissing\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m    426\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    427\u001b[0m         \u001b[1;31m# Date handling in indexes\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32md:\\miniconda\\lib\\site-packages\\statsmodels\\base\\model.py\u001b[0m in \u001b[0;36m__init__\u001b[1;34m(self, endog, exog, **kwargs)\u001b[0m\n\u001b[0;32m    265\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    266\u001b[0m     \u001b[1;32mdef\u001b[0m \u001b[0m__init__\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mendog\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mexog\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;32mNone\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 267\u001b[1;33m         \u001b[0msuper\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m__init__\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mendog\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mexog\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m    268\u001b[0m         \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0minitialize\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    269\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32md:\\miniconda\\lib\\site-packages\\statsmodels\\base\\model.py\u001b[0m in \u001b[0;36m__init__\u001b[1;34m(self, endog, exog, **kwargs)\u001b[0m\n\u001b[0;32m     91\u001b[0m         \u001b[0mhasconst\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpop\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'hasconst'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m     92\u001b[0m         self.data = self._handle_data(endog, exog, missing, hasconst,\n\u001b[1;32m---> 93\u001b[1;33m                                       **kwargs)\n\u001b[0m\u001b[0;32m     94\u001b[0m         \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mk_constant\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdata\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mk_constant\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m     95\u001b[0m         \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mexog\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdata\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mexog\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32md:\\miniconda\\lib\\site-packages\\statsmodels\\base\\model.py\u001b[0m in \u001b[0;36m_handle_data\u001b[1;34m(self, endog, exog, missing, hasconst, **kwargs)\u001b[0m\n\u001b[0;32m    130\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    131\u001b[0m     \u001b[1;32mdef\u001b[0m \u001b[0m_handle_data\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mendog\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mexog\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mmissing\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mhasconst\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 132\u001b[1;33m         \u001b[0mdata\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mhandle_data\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mendog\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mexog\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mmissing\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mhasconst\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m    133\u001b[0m         \u001b[1;31m# kwargs arrays could have changed, easier to just attach here\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    134\u001b[0m         \u001b[1;32mfor\u001b[0m \u001b[0mkey\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32md:\\miniconda\\lib\\site-packages\\statsmodels\\base\\data.py\u001b[0m in \u001b[0;36mhandle_data\u001b[1;34m(endog, exog, missing, hasconst, **kwargs)\u001b[0m\n\u001b[0;32m    672\u001b[0m     \u001b[0mklass\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mhandle_data_class_factory\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mendog\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mexog\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    673\u001b[0m     return klass(endog, exog=exog, missing=missing, hasconst=hasconst,\n\u001b[1;32m--> 674\u001b[1;33m                  **kwargs)\n\u001b[0m",
      "\u001b[1;32md:\\miniconda\\lib\\site-packages\\statsmodels\\base\\data.py\u001b[0m in \u001b[0;36m__init__\u001b[1;34m(self, endog, exog, missing, hasconst, **kwargs)\u001b[0m\n\u001b[0;32m     85\u001b[0m         \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mk_constant\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;36m0\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m     86\u001b[0m         \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_handle_constant\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mhasconst\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 87\u001b[1;33m         \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_check_integrity\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m     88\u001b[0m         \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_cache\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;33m{\u001b[0m\u001b[1;33m}\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m     89\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32md:\\miniconda\\lib\\site-packages\\statsmodels\\base\\data.py\u001b[0m in \u001b[0;36m_check_integrity\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m    530\u001b[0m                 not self.orig_endog.index.equals(self.orig_exog.index)):\n\u001b[0;32m    531\u001b[0m             \u001b[1;32mraise\u001b[0m \u001b[0mValueError\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"The indices for endog and exog are not aligned\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 532\u001b[1;33m         \u001b[0msuper\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mPandasData\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_check_integrity\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m    533\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    534\u001b[0m     \u001b[1;32mdef\u001b[0m \u001b[0m_get_row_labels\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0marr\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32md:\\miniconda\\lib\\site-packages\\statsmodels\\base\\data.py\u001b[0m in \u001b[0;36m_check_integrity\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m    432\u001b[0m         \u001b[1;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mexog\u001b[0m \u001b[1;32mis\u001b[0m \u001b[1;32mnot\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    433\u001b[0m             \u001b[1;32mif\u001b[0m \u001b[0mlen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mexog\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;33m!=\u001b[0m \u001b[0mlen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mendog\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 434\u001b[1;33m                 \u001b[1;32mraise\u001b[0m \u001b[0mValueError\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"endog and exog matrices are different sizes\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m    435\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    436\u001b[0m     \u001b[1;32mdef\u001b[0m \u001b[0mwrap_output\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mobj\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mhow\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m'columns'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mnames\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;32mNone\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;31mValueError\u001b[0m: endog and exog matrices are different sizes"
     ]
    }
   ],
   "source": [
    "#创建模型\n",
    "model=ARIMA(sale,(2,3,3)).fit()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {},
   "outputs": [
    {
     "ename": "NameError",
     "evalue": "name 'model' is not defined",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mNameError\u001b[0m                                 Traceback (most recent call last)",
      "\u001b[1;32m<ipython-input-60-087cb9f4808c>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[0;32m      1\u001b[0m \u001b[1;31m#查看模型报告\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 2\u001b[1;33m \u001b[0mmodel\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msummary2\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[1;31mNameError\u001b[0m: name 'model' is not defined"
     ]
    }
   ],
   "source": [
    "#查看模型报告\n",
    "model.summary2()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### （2）残差检验"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "ename": "NameError",
     "evalue": "name 'model' is not defined",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mNameError\u001b[0m                                 Traceback (most recent call last)",
      "\u001b[1;32m<ipython-input-40-97d72ab6778b>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mresid\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mmodel\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mresid\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m      2\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m      3\u001b[0m \u001b[1;31m#自相关图\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m      4\u001b[0m \u001b[0mplot_acf\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mresid\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mlags\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m35\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mshow\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m      5\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;31mNameError\u001b[0m: name 'model' is not defined"
     ]
    }
   ],
   "source": [
    "resid=model.resid\n",
    "\n",
    "#自相关图\n",
    "plot_acf(resid,lags=35).show()\n",
    "\n",
    "#解读：有短期相关性，但趋向于零。\n",
    "\n",
    "#偏自相关图\n",
    "plot_pacf(resid,lags=20).show()\n",
    "\n",
    "#偏自相关图\n",
    "plot_pacf(resid,lags=35).show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- QQ图\n",
    "\n",
    "线性即正态分布"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "ename": "NameError",
     "evalue": "name 'resid' is not defined",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mNameError\u001b[0m                                 Traceback (most recent call last)",
      "\u001b[1;32m<ipython-input-41-dc21c0999d94>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mqqplot\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mresid\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mline\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m'q'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mfit\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;32mTrue\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mshow\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m      2\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m      3\u001b[0m \u001b[1;31m#解读：残差服从正态分布，均值为零，方差为常数\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;31mNameError\u001b[0m: name 'resid' is not defined"
     ]
    }
   ],
   "source": [
    "qqplot(resid, line='q', fit=True).show() \n",
    "\n",
    "#解读：残差服从正态分布，均值为零，方差为常数"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- D-W检验"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    " 德宾-沃森检验,简称D-W检验，是目前检验自相关性最常用的方法，但它只适用于检验一阶自相关性。\n",
    "    因为自相关系数ρ的值介于-1和1之间，所以 0≤DW≤４。\n",
    "- 并且DW＝O ＜ ＝＞ ρ＝１　　即存在正自相关性\n",
    "- DW＝４   ＜＝＞  ρ＝－１　即存在负自相关性\n",
    "- DW＝２   ＜＝＞  ρ＝０　　即不存在（一阶）自相关性\n",
    "\n",
    "因此，当DW值显著的接近于O或４时，则存在自相关性，而接近于２时，则不存在（一阶）自相关性。\n",
    "\n",
    "原文链接：https://blog.csdn.net/u010414589/article/details/49622625"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "ename": "NameError",
     "evalue": "name 'resid' is not defined",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mNameError\u001b[0m                                 Traceback (most recent call last)",
      "\u001b[1;32m<ipython-input-42-1dde6776e1c6>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'D-W检验的结果为：'\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0msm\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mstats\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdurbin_watson\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mresid\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mvalues\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m      2\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m      3\u001b[0m \u001b[1;31m#解读：不存在一阶自相关\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;31mNameError\u001b[0m: name 'resid' is not defined"
     ]
    }
   ],
   "source": [
    "print('D-W检验的结果为：',sm.stats.durbin_watson(resid.values))  \n",
    "\n",
    "#解读：不存在一阶自相关"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- Ljung-Box检验"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Ljung-Box test是对randomness的检验,或者说是对时间序列是否存在滞后相关的一种统计检验。对于滞后相关的检验，我们常常采用的方法还包括计算ACF和PCAF并观察其图像，但是无论是ACF还是PACF都仅仅考虑是否存在某一特定滞后阶数的相关。LB检验则是基于一系列滞后阶数，判断序列总体的相关性或者说随机性是否存在。\n",
    "时间序列中一个最基本的模型就是高斯白噪声序列。而对于ARIMA模型，其残差被假定为高斯白噪声序列，所以当我们用ARIMA模型去拟合数据时，拟合后我们要对残差的估计序列进行LB检验，判断其是否是高斯白噪声，如果不是，那么就说明ARIMA模型也许并不是一个适合样本的模型。\n",
    "\n",
    "检验的结果就是看最后一列前十二行的检验概率（一般观察滞后1~12阶），如果检验概率小于给定的显著性水平，比如0.05、0.10等就拒绝原假设，其原假设是相关系数为零。\n",
    "\n",
    "原文链接：https://blog.csdn.net/u010414589/article/details/49622625"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "ename": "NameError",
     "evalue": "name 'resid' is not defined",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mNameError\u001b[0m                                 Traceback (most recent call last)",
      "\u001b[1;32m<ipython-input-43-51cda5374cb4>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[0;32m      1\u001b[0m \u001b[1;31m# 方法一\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 2\u001b[1;33m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'残差序列的白噪声检验结果为：'\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0macorr_ljungbox\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mresid\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mlags\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;31m#返回统计量、P值\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m      3\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m      4\u001b[0m \u001b[1;31m#解读：残差是白噪声\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;31mNameError\u001b[0m: name 'resid' is not defined"
     ]
    }
   ],
   "source": [
    "# 方法一\n",
    "print('残差序列的白噪声检验结果为：',acorr_ljungbox(resid,lags=1))#返回统计量、P值\n",
    "\n",
    "#解读：残差是白噪声"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "ename": "NameError",
     "evalue": "name 'resid' is not defined",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mNameError\u001b[0m                                 Traceback (most recent call last)",
      "\u001b[1;32m<ipython-input-44-6d61e2322ab5>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[0;32m      1\u001b[0m \u001b[1;31m# 方法二\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 2\u001b[1;33m \u001b[0mconfint\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mqstat\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mpvalues\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0msm\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mtsa\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0macf\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mresid\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mvalues\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mqstat\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;32mTrue\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;31m#qstat is Ljung-Box Q-Statistic. confint is  Confidence intervals for the ACF\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m      3\u001b[0m \u001b[0mdata\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mc_\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mrange\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;36m36\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mconfint\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mqstat\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mpvalues\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m      4\u001b[0m \u001b[0mtable\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mpd\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mDataFrame\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mcolumns\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m'lag'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m\"confint\"\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m\"qstat\"\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m\"pvalues(>Q)\"\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m      5\u001b[0m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mtable\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mset_index\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'lag'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;31mNameError\u001b[0m: name 'resid' is not defined"
     ]
    }
   ],
   "source": [
    "# 方法二\n",
    "confint,qstat,pvalues = sm.tsa.acf(resid.values, qstat=True) #qstat is Ljung-Box Q-Statistic. confint is  Confidence intervals for the ACF\n",
    "data = np.c_[range(1,36), confint[1:], qstat, pvalues]\n",
    "table = pd.DataFrame(data, columns=['lag', \"confint\", \"qstat\", \"pvalues(>Q)\"])\n",
    "print(table.set_index('lag'))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "【补充说明】\n",
    "\n",
    "    如果残差不是白噪声，可以考虑取另外一组p、q值；或者该数据不适应ARIMA模型。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### （3）预测"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#预测\n",
    "print('未来7天的销量预测：')\n",
    "model.forecast(7) #预测、标准差、置信区间"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [
    {
     "ename": "NameError",
     "evalue": "name 'model' is not defined",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mNameError\u001b[0m                                 Traceback (most recent call last)",
      "\u001b[1;32m<ipython-input-45-104a0b75db8a>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mforecast\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mpd\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mSeries\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mmodel\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mforecast\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m7\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mindex\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mpd\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdate_range\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'2015-2-7'\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mperiods\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m7\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mfreq\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m'D'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m      2\u001b[0m \u001b[0mforecast\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;31mNameError\u001b[0m: name 'model' is not defined"
     ]
    }
   ],
   "source": [
    "forecast=pd.Series(model.forecast(7)[0],index=pd.date_range('2015-2-7',periods=7,freq='D'))\n",
    "forecast"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [
    {
     "ename": "NameError",
     "evalue": "name 'forecast' is not defined",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mNameError\u001b[0m                                 Traceback (most recent call last)",
      "\u001b[1;32m<ipython-input-46-644d583f8d6b>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mdata\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mpd\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mconcat\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0msale\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mforecast\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0maxis\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m      2\u001b[0m \u001b[0mdata\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcolumns\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m'销量'\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;34m'未来7天销量'\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m      3\u001b[0m \u001b[0mplt\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfigure\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfigsize\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m10\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;36m5\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m      4\u001b[0m \u001b[0mdata\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mplot\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m      5\u001b[0m \u001b[0mplt\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mshow\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;31mNameError\u001b[0m: name 'forecast' is not defined"
     ]
    }
   ],
   "source": [
    "data=pd.concat((sale,forecast),axis=0)\n",
    "data.columns=['销量','未来7天销量']\n",
    "plt.figure(figsize=(10,5))\n",
    "data.plot()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
